import request from '@/utils/request'

// 查询角色列表
export function listRole(query) {
    return request({
        url: '/system/role/list',
        method: 'get',
        params: query
    })
}

// 查询角色详细
export function getRole(roleId) {
    return request({
        url: '/system/role/' + roleId,
        method: 'get'
    })
}

// 新增角色
export function addRole(data) {
    return request({
        url: '/system/role',
        method: 'post',
        data: data
    })
}

// 修改角色
export function updateRole(data) {
    return request({
        url: '/system/role',
        method: 'put',
        data: data
    })
}

// 角色数据权限
export function dataScope(data) {
    return request({
        url: '/system/role/dataScope',
        method: 'put',
        data: data
    })
}

// 角色状态修改
export function changeRoleStatus(roleId, status) {
    const data = {
        roleId,
        status
    }
    return request({
        url: '/system/role/changeStatus',
        method: 'put',
        data: data
    })
}

// 删除角色
export function delRole(roleId) {
    return request({
        url: '/system/role/' + roleId,
        method: 'delete'
    })
}

// 查询角色已授权用户列表
export function allocatedUserList(query) {
    return request({
        url: '/system/role/authUser/allocatedList',
        method: 'get',
        params: query
    })
}

// 查询角色未授权用户列表
export function unallocatedUserList(query) {
    return request({
        url: '/system/role/authUser/unallocatedList',
        method: 'get',
        params: query
    })
}

// 取消用户授权角色
export function authUserCancel(data) {
    return request({
        url: '/system/role/authUser/cancel',
        method: 'put',
        data: data
    })
}

// 批量取消用户授权角色
export function authUserCancelAll(data) {
    return request({
        url: '/system/role/authUser/cancelAll',
        method: 'put',
        params: data
    })
}

// 授权用户选择
export function authUserSelectAll(data) {
    return request({
        url: '/system/role/authUser/selectAll',
        method: 'put',
        params: data
    })
}

// 根据角色ID查询部门树结构
export function deptTreeSelect(roleId) {
    return request({
        url: '/system/role/deptTree/' + roleId,
        method: 'get'
    })
}

/* 角色列表 */
export function getRoleList(params) {
    return request({
        url: 'system/role/roleList',
        method: 'GET',
        params: params
    })
}

/**
 * 修改用户状态
 * @param {*} id 
 * @param {*} status 
 */
export function changeStatus(id, status) {
    const data = {
        id: id,
        status: status
    };
    return request({
        url: "system/role/changeRoleStatus",
        method: "PUT",
        params: data
    })
}

/**
 * 获取角色信息
 * @param {*} id 
 */
export function getRoleInfo(id) {
    return request({
        url: "system/role/roleInfo/" + id,
        method: "GET",
    })
}

/**
 * 修改角色信息
 * @param {role} 角色信息 
 * @returns 
 */
export function updateRoleInfo(role) {
    return request({
        url: 'system/role/updateRole',
        method: "PUT",
        data: role,
    })
}

/**
 * 新增角色信息
 * @param {role} 角色信息 
 * @returns 
 */
export function addRoleInfo(role) {
    return request({
        url: 'system/role/addRole',
        method: "POST",
        data: role,
    })
}

/**
 * 删除角信息
 * @param {ids} 角色id 
 */
export function delRoleInfo(ids) {
    return request({
        url: 'system/role/delRole/' + ids,
        method: "DELETE",
    })
}

/**
 * 设置角色权限
 * @param {data} 角色编号和菜单编号 
 */
export function updateMenuAuth(data) {
    return request({
        url: 'system/role/menuAuth',
        method: 'PUT',
        data: data,
    })
}